Skip to content

Add alzheimer cnn#1122

Open
penguintron3000 wants to merge 17 commits intosunlabuiuc:masterfrom
JoeyxSalazar:add-alzheimer-cnn
Open

Add alzheimer cnn#1122
penguintron3000 wants to merge 17 commits intosunlabuiuc:masterfrom
JoeyxSalazar:add-alzheimer-cnn

Conversation

@penguintron3000
Copy link
Copy Markdown

@penguintron3000 penguintron3000 commented Apr 23, 2026

Eric Liu ericnl2/ericnl2@illinois.edu, Joey Salazar jes9/jes9@illinois.edu, Jacob Alcumbrack jacoba5/jacoba5@illinois.edu

Model Contribution (CNN Model cross-segmented MRI for Alzheimer's)
Original paper: https://arxiv.org/abs/1911.03740

Ablations Implemented to Model:
Original Paper Ablations
1. Starting CNN blocks with small kernel sizes (k = 1) to avoid early downsampling
2. Using instance normalization over batch normalization to keep image information independent
3. Using wide architecture(larger filters, fewer layers) to greatly improve performance while barely hurting accuracy
Our Ablation Extension
1. Adding group normalization to normalize each image by groups of channels to find relationships between channels
2. Adding layer normalization to discover global relationships within each image
2. Underfitting and overfitting channel capacities just to see whether more or less capacity works better with MRI images
2. Hybridizing CNN with vision transformers to allow CNN to observe and evaluate on global relationships over just local

Models
pyhealth/models/alzheimer_cnn.py

Examples
examples/alzheimer_mri_classification_alzheimer_cnn.py - Original paper's model + our ablations
examples/research_paper_reproduction_alzheimer_cnn.py - Generic model + original paper's ablations

Tests
tests/core/test_alzheimercnn.py
Tests test each step of the CNN model process, For each of our models:
Test for stable instantiation and verify default values
Validate our forward pass output structure and shape
Validate that our y_prob totals to 1
Check the structure of loss
And make sure gradients are received by our parameters

For specific model tests:
Test that AlzheimerCNNNormVariant works for each available normalization types
17/17 passed

Data Source
https://huggingface.co/datasets/Falah/Alzheimer_MRI

As the original paper's data sources were far too large (3D MRI Images) to store and process on our hardware to produce meaningful results, we decided to implement much of their ablations on a 2D data source

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants